#include <cassert>
#include <cstdint>
#include <iomanip>
#include <iostream>
#include <vector>
using namespace std;

template<typename T>
class Image{
  const string name;
  const int R, C;
  vector<vector<T> > img;
public:
  Image(const string& tnm, int tr, int tc) : name(tnm), R(tr), C(tc), img(R) {
    for(int r = 0; r < R; ++r){
      img[r].resize(C);
    }
  }

  vector<T>& operator[](int r){
    return img[r];
  }

  void randomize(const int max_value){
    for(int r = 0; r < R; ++r){
      auto &vr = img[r];
      for(int c = 0; c < C; ++c){
        vr[c] = rand() % max_value;
      }
    }
  }

  void load(istream& ist) {
    for(int r = 0; r < R; ++r){
      auto &vr = img[r];
      for(int c = 0; c < C; ++c){
        ist >> vr[c];
      }
    }
  }

  void blur(const int F) { 
    // TODO
  }

  void save(ostream& ost, const int F) {
    ost << name << ' ' << R << ' ' << C << ' ' << F << '\n';
    for(int r = 0; r < R; ++r){
      auto &vr = img[r];
      vr.resize(C);
      for(int c = 0; c < C; ++c){
        ost << vr[c] << (c < C-1 ? ' ' : '\n');
      }
    }
  }
};

int main(){
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  string name;
  for(int R, C, F; cin >> name >> R >> C >> F;){
    Image<uint32_t> img(name, R, C);
    img.load(cin);
    img.blur(F);
    img.save(cout, F);
  }
}
